﻿////1.日期差值
////https://www.nowcoder.com/practice/ccb7383c76fc48d2bbc27a2a6319631c?tpId=62&&tqId=29468&rp=1&ru=/activity/oj&qru=/ta/sju-kaoyan/question-ranking
////法一：用日期类做题
//#include <iostream>
//using namespace std;
//class Date {
//public:
//    Date(int year, int month, int day)
//        : _year(year), _month(month), _day(day) {}
//    int get_month_day(int year, int month) {
//        static int ArrayMonth[13] = { -1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
//        if (month == 2 && ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0))
//            return 29;
//        else
//            return ArrayMonth[month];
//    }
//    bool operator<(Date& d) {
//        if (_year < d._year)
//            return true;
//        else if (_year == d._year) {
//            if (_month < d._month)
//                return true;
//            else if (_month == d._month) {
//                if (_day < d._day)
//                    return true;;
//            }
//        }
//        return false;
//    }
//    Date& operator++() {
//        _day += 1;
//        if (_day > get_month_day(_year, _month)) {
//            _day -= get_month_day(_year, _month);
//            ++_month;
//            if (_month > 12) {
//                _month = 1;
//                ++_year;
//            }
//        }
//        return *this;
//    }
//    int operator-(Date& d) {
//        int flag = 1, ret = 0;
//        Date min = *this;
//        Date max = d;
//        if (d < *this) {
//            min = d;
//            max = *this;
//            flag = -1;
//        }
//        while (min < max) {
//            ++min;
//            ++ret;
//        }
//        return (ret + 1) * flag;
//    }
//private:
//    int _year;
//    int _month;
//    int _day;
//};
//int main() {
//    int n1;
//    cin >> n1;
//    int n2;
//    cin >> n2;
//    int year1 = n1 / 10000, month1 = (n1 % 10000) / 100, day1 = n1 % 100;
//    int year2 = n2 / 10000, month2 = (n2 % 10000) / 100, day2 = n2 % 100;
//    Date d1(year1, month1, day1);
//    Date d2(year2, month2, day2);
//    cout << (d1 - d2) << endl;
//    return 0;
//}
////法二：
///*
//  *思路：
//  * 1. 分别求出每一个日期与0000年0月1日距离的天数
//  * 2. 两个距离天数相减即可得到两个日期相差的天数
//  */
//  //平年从1月到n月的天数
//int mon[12] = { 0,31,59,90,120,151,181,212,243,273,304,334 };
////给出年月日，计算距离0000年0月1日的天数和
//int CountDay(int y, int m, int d)
//{
//    // 计算0-y年的天数
//    int yearDay = y * 365 + y / 4 - y / 100 + y / 400;
//    // 计算到0-m月的天数
//    int monthDay = mon[m - 1];
//    if (m > 2 && ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0))
//        monthDay += 1;
//    return yearDay + monthDay + d;
//}
//int main()
//{
//    int year1, month1, day1;
//    scanf("%4d%2d%2d", &year1, &month1, &day1);
//    int n1 = CountDay(year1, month1, day1);
//    int year2, month2, day2;
//    scanf("%4d%2d%2d", &year2, &month2, &day2);
//    int n2 = CountDay(year2, month2, day2);
//    cout << abs(n1 - n2) + 1 << endl;
//}
////2.累加天数
//https://www.nowcoder.com/practice/eebb2983b7bf40408a1360efb33f9e5d?tpId=40&&tqId=31013&rp=1&ru=/activity/oj&qru=/ta/kaoyan/question-ranking
//#include <iostream>
//using namespace std;
//int get_month_day(int year, int month)
//{
//    int ArrayMonth[13] = { -1,31,28,31,30,31,30,31,31,30,31,30,31 };
//    if (month == 2 && ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0))
//        return 29;
//    else return ArrayMonth[month];
//}
//void AfterSum(int year, int month, int day, int n)
//{
//    day += n;
//    while (day > get_month_day(year, month))
//    {
//        day -= get_month_day(year, month);
//        month++;
//        if (month == 13)
//        {
//            month = 1;
//            ++year;
//        }
//    }
//    printf("%04d-%02d-%02d\n", year, month, day);//用C中格式化输出
//}
//int main() {
//    int m; cin >> m;
//    while (m--)
//    {
//        int year, month, day, n; cin >> year >> month >> day >> n;
//        AfterSum(year, month, day, n);
//    }
//    return 0;
//}
//3.打印日期
//https://www.nowcoder.com/practice/b1f7a77416194fd3abd63737cdfcf82b?tpId=69&&tqId=29669&rp=1&ru=/activity/oj&qru=/ta/hust-kaoyan/question-ranking
#include <iostream>
using namespace std;
bool is_run_year(int m) {
    if ((m % 4 == 0 && m % 100 != 0) || m % 400 == 0)
        return true;
    else return false;
}
void Print(int m, int n) {
    if ((n == 366 && is_run_year(m)) || (n == 365 && !(is_run_year(m))))
    {
        printf("%04d-%02d-%02d\n", m + 1, 1, 1);
        return;
    }
    int get_month_day[13] = { -1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    if (((m % 4 == 0 && m % 100 != 0) || m % 400 == 0))
        get_month_day[2] = 29;
    int ret = 0;
    for (int i = 1; i <= 12; i++) {
        n -= get_month_day[i];
        if (n <= 0) {
            n += get_month_day[i];
            ret = i;
            break;
        }
    }
    printf("%04d-%02d-%02d\n", m, ret, n);
}
int main() {
    int m, n;
    while (cin >> m >> n) {
        Print(m, n);
    }
    return 0;
}